﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AutoCooker2
{
    /// <summary>
    /// 要两个AutoCooker，才能通知mother和son，不合逻辑，能不能让AutoCooker同时通知所有的监控者呢？
    /// 还有，就是接口用作事件的时候，粒度不够好，比如Son其实不怎么关心CookStarted和CookProgressing的，但是作为接口也必须全部实现。
    /// 
    /// 解决方案: 将上面接口的方法分离为单独的委托，每个委托都像一个小的接口方法：
    ///             (See AutoCooker3)
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            Mother mother = new Mother();
            AutoCooker2 easyCooker = new AutoCooker2(mother);
            easyCooker.DoCook();

            Son son = new Son();
            AutoCooker2 easyCooker2 = new AutoCooker2(son);
            easyCooker2.DoCook();

            Console.ReadLine();
        }
    }
}
